System and method for identifying content relevant to a user based on gathering contextual information from music and music player environmental factors

ABSTRACT

Content relevant to an operator of a music player may be identified using contextual information from music and music player environmental factors. Identification information for a song and music player identification information, environmental information, and listener information may be received. A song may be matched with information in a song categorization database so that one or more categories associated with the song are identified. A listener profile may be matched using a listener knowledge database to identify one or more categories associated with the listener. Content may be selected by matching the one or more song categories with categories in a campaign database and by matching the one or more listener categories with categories in the campaign database. Content includes, but is not limited to, advertising, trivia, referential information, weather, stock market prices, traffic information, news information, social media information, etc. The selected content is sent to the music player.

BACKGROUND

The music ecosystem is constantly changing. In the past, consumerspurchased records bearing machine-readable music such as records, eighttrack, cassettes, compact discs, and more recently, downloadablecomputer files such as MP3 files, ITUNES™ brand files, and the like.

Now consumers are subscribing to music streaming services where music isrelayed from a computer server down to a portable computing device innear real time. The music is typically stored in a temporary file whichis played almost immediately for the music consumer. The music consumermay not be required to pay for the music streaming service if theservice is subsidized with advertising. In some situations, the musicconsumer may pay a subscription fee usually on a monthly basis such thatadvertising is reduced and/or eliminated from the music streamingservice.

One problem that exists is that the advertising associated with musicstreaming services is not customized for the music consumer. Ifadvertising is not customized for the music consumer, thenadvertisements may be conveyed to the music consumer which are notrelevant. When advertisements are not relevant, then it is unlikely thatthe music consumer will purchase any services and/or goods which areassociated with the advertisements.

SUMMARY OF THE DISCLOSURE

A system and method for identifying content relevant to a user based oncontextual information from music and music player environmental factorsincludes receiving identification information for a song from acommunications network and receiving music player identificationinformation, environmental information, and listener information fromthe communications network. Next, the song may be matched withinformation in a song categorization database in order to identify oneor more categories associated with the song. Next, the listener may bematched with information in a listener knowledge database in order toidentify one or more categories associated with the listener. Contentfrom a content database may be selected by matching the one or more songcategories with categories in a campaign database and by matching theone or more listener categories with categories in a campaign database.The content may include, but is not limited to, advertising. Othercontent could include information like trivia, referential information(like a WIKIPEDIA™ web page on a subject/topic, etc.), weather, stockmarket prices, published news information, traffic, hypertext links,social media information, etc. A message may be generated that includesthe selected content and this message may be sent over thecommunications network to the music player.

The music player identification information may include at least one ofa unique identifier associated with the music player, hardwareinformation for the music player, and software information for the musicplayer. The environmental information may include at least one ofgeographical coordinates for the music player and accelerometerinformation for the music player so that a geographical location for themusic player can be ascertained.

The listener information received may include at least one of astreaming music profile associated with an operator of the music player,weather information associated with a geographical position of the musicplayer, and traffic information associated with the geographicalposition of the music player.

This summary is provided to introduce a selection of concepts that arefurther described below in the detailed description. This summary is notintended to identify key or essential features of the claimed subjectmatter, nor is it intended to be used as an aid in limiting the scope ofthe claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, like reference numerals refer to like parts throughoutthe various views unless otherwise indicated. For reference numeralswith letter character designations such as “102A” or “102B”, the lettercharacter designations may differentiate two like parts or elementspresent in the same figure. Letter character designations for referencenumerals may be omitted when it is intended that a reference numeral toencompass all parts having the same reference numeral in all figures.

FIG. 1A is a functional block diagram illustrating an exemplary systemfor identifying content relevant to a user based on contextualinformation from music and music player environmental factors;

FIG. 1B is a function of block diagram illustrating further details ofthe system illustrated in FIG. 1A;

FIG. 1C is an exemplary screen display illustrating exemplary contentidentified as relevant to a user based on contextual information frommusic and music player environmental factors;

FIG. 1D is an exemplary screen display illustrating further exemplarycontent identified as relevant to a user based on contextual informationfrom music and music player environmental factors;

FIG. 2A illustrates an exemplary song table that is stored in the songcategorization database illustrated in FIG. 1B;

FIG. 2B illustrates an exemplary song categories table which isgenerated by the song categorization module of FIG. 1B;

FIG. 3 is logical flowchart illustrating a method for identifyingcontent relevant to a user based on contextual information from musicand music player environmental factors;

FIG. 4 is logical flowchart illustrating a submethod or routine of FIG.3 for tracking profile data of the music subscriber as well as anyrelevant context information that may be ascertained from the portablecomputing device according to one exemplary embodiment;

FIG. 5 is logical flowchart illustrating a submethod or routine of FIG.3 for categorizing songs according to one exemplary embodiment;

FIG. 6 is logical flowchart illustrating a submethod or routine of FIG.3 for selecting content relevant to a particular song according to oneexemplary embodiment;

FIG. 7 is a functional block diagram of an exemplary, non-limitingaspect of a PCD in the form of a wireless telephone for implementingmethods and systems identifying content relevant to a user based oncontextual information from music and music player environmentalfactors; and

FIG. 8 is a functional block diagram of an exemplary, nonlimiting aspectof a general-purpose computer for implementing methods and systems foridentifying content relevant to a user based on contextual informationfrom music and music player environmental factors.

DETAILED DESCRIPTION

The word “exemplary” is used herein to mean “serving as an example,instance, or illustration.” Any aspect described herein as “exemplary”is not necessarily to be construed as exclusive, preferred oradvantageous over other aspects.

In this description, the term “application” may also include fileshaving executable content, such as: object code, scripts, byte code,markup language files, and patches. In addition, an “application”referred to herein, may also include files that are not executable innature, such as documents that may need to be opened or other data filesthat need to be accessed.

As used in this description, the terms “component,” “database,”“module,” “system,” “processing component” and the like are intended torefer to a computer-related entity, either hardware, firmware, acombination of hardware and software, software, or software inexecution. For example, a component may be, but is not limited to being,a process running on a processor, a processor, an object, an executable,a thread of execution, a program, and/or a computer.

By way of illustration, both an application running on a computingdevice and the computing device may be a component. One or morecomponents may reside within a process and/or thread of execution, and acomponent may be localized on one computer and/or distributed betweentwo or more computers. In addition, these components may execute fromvarious computer readable media having various data structures storedthereon. The components may communicate by way of local and/or remoteprocesses such as in accordance with a signal having one or more datapackets (e.g., data from one component interacting with anothercomponent in a local system, distributed system, and/or across a networksuch as the Internet with other systems by way of the signal).

In this description, the terms “central processing unit (“CPU”),”“digital signal processor (“DSP”),” and “chip” are used interchangeably.Moreover, a CPU, DSP, or a chip may be comprised of one or more distinctprocessing components generally referred to herein as “core(s).”

In this description, the term “portable computing device” (“PCD”) isused to describe any device operating on a limited capacity powersupply, such as a battery and/or capacitor. Although battery operatedPCDs have been in use for decades, technological advances inrechargeable batteries coupled with the advent of third generation(“3G”) and fourth generation (“4G”) wireless technology have enablednumerous PCDs with multiple capabilities. Therefore, a PCD may be acellular telephone, a satellite telephone, a pager, a PDA, a smartphone,a navigation device, a smartbook or reader, a media player, acombination of the aforementioned devices, a laptop computer with awireless connection, among others.

FIG. 1A is a functional block diagram illustrating an exemplary system101 that includes a subsystem 99 for identifying content relevant to auser based on contextual information from music and music playerenvironmental factors. The content may include, but is not limited to,advertising. Other content could include information like trivia,referential information, weather, stock market prices, news information,traffic information, hypertext links, social media information, etc. Thesystem 101 further includes a content producer/advertiser 133, a musicdatabase/streaming service provider 106, and a portable computing device100.

Each of these elements of system 101 are coupled to the computercommunications network 142 via communication links 103. Thecommunication links 103 illustrated in FIG. 1A may comprise wired orwireless communication links. Wireless communication links include, butare not limited to, radio-frequency (“RF”) links, such as BLUETOOTH™ RFlinks as well as infrared links, acoustic links, and other wirelessmediums. The communications networks 142 may comprise a wide areanetwork (“WAN”), a local area network (“LAN”), the Internet, a PublicSwitched Telephony Network (“PSTN”), or any combination thereof.

The communications network 142 may be established by broadcast RFtransceiver towers (not illustrated). However, one of ordinary skill inthe art recognizes that other types of communication devices besidesbroadcast RF transceiver towers are included within the scope of thesystem 101 for establishing the communications network 142. Theexemplary communication network 142 of FIG. 1A may employ wirelesscommunications towers (not shown) which couple to the antennas of theportable computing device (PCD) 100.

The PCD 100 may be running or executing a client side applications suchas, but not limited to, a song presentation module 104B, a contentpresentation module 102B, and a listener categorization module 114B. ThePCD 100 may also have a global positioning system (GPS) unit 715 forascertaining geographical coordinates of the PCD 100 as understood byone of ordinary skill in the art. The PCD 100 with its GPS unit 715 mayreceive and transmit signals including, location parameters, fromsatellites, including satellites that are part of the Global PositioningSystem (GPS), Galileo, GLONASS, NAVSTAR, GNSS, any system that usessatellites from a combination of these systems, or any satellitepositioning system subsequently developed (collectively referred to as aSatellite Positioning System (“SPS”) in this disclosure.

As understood by one of ordinary skill in the art, however, thetechnology of all SPS systems is constantly being improved. New as yetunknown technologies for location determination and for determininglocation parameters of use may be used in connection with the contentidentifier and selection subsystem 99, and are included in the meaningof “SPS” as described above.

The music database/streaming service 106 may comprise any one of thirdparty music streaming services known as of this writing. For example,exemplary music databases/streaming services 106 may comprise SPOTIFY™,YOUTUBE™, PANDORA™, SLACKER RADIO™, just to name a few. In otherexemplary embodiments, the music database/streaming service 106 couldcomprise work with files existing within the portable computing device100 such as MP3 files and/or iTunes type files.

Referring now to FIG. 1B, this figure illustrates further details of thesubsystem 99 without the communications network 142, however, theconnections of the communications network between the subsystem and theother elements like the content producer/advertiser 133, musicdatabase/streaming service provider 106, and PCD 100 are implied. Thesubsystem 99 may comprise several different music based databases 122which feed into a song categorization module 120. The songcategorization module 120 may be coupled to a song categorizationdatabase 118. The song categorization database 118 may be coupled to acampaign database 116, a content database 110, and a listener knowledgedatabase 112.

The campaign database 116, the song categorization database 118, thecontent database 110, and listener knowledge database 112 may worktogether and feed information into the content selection module 108. Thecontent selection module 108 may be coupled to a content presentationmodule 102

The listener knowledge database 112 may be coupled to a listenercategorization module 114. The listener categorization module 114 may becoupled to the portable computing device 100 Similarly, a contentpresentation module 102 may be coupled to the portable computing device100. Both the listener categorization module 114 and the contentpresentation module 102 may communicate with the portable computingdevice 100 over the same or different channels as understood by one ofordinary skill the art.

Further, portions of the listener categorization module 114 as well asportions of the content presentation module 102 may reside within theportal computing device 100. In other exemplary embodiments, thelistener categorization module 114 and the content presentation module102 may entirely reside within the portable computing device 100

A content producer/advertiser 133 may supply the data for and may managethe campaign database 116 and the content database 110. Meanwhile, amusic database/streaming service 106 may be coupled to the contentselection module 108. The music database/streaming service 106 may becoupled to a song presentation module 104 which resides on the portablecomputing device 100.

The artist feature database 122A, the album feature database 122B, andthe song feature database 122C may be generated by software/hardwareengines which crawl large databases such as those found on the Internetas understood by one of ordinary skill the art. The software/hardwareengines may comb the Internet for third-party content that addressesartists, albums, and songs. This third-party content may compriseinformation from sources like social media (i.e. TWITTER™ accounts,FACEBOOK™ accounts, MYSPACE™ accounts, LINKED-IN™ accounts etc.) as wellas from traditional information sources such as news articles fromnewspapers, magazines, and news information websites (Wikipedia, etc.).

The artist feature database 122A, the album feature database 122B, andsong feature database 122C, may also comprise data which is generated bymusical analysts. Such musical analysts may be aware of products and/orservices which are associated and/or affiliated with particular artists,albums, and/or songs. For example, a musical analysts may have conductedor was aware that an interview with conducted with a particular artistwho had received recent endorsements from particular products, such as aparticular brand of an automobile.

These three databases 122A, 122B, and 122C may also be populated withdata from third-party databases which relate or track popularity ofsongs, such as, but not limited to Billboard magazine's top 40 songs inthe United States and in other countries.

The song acoustic feature database 122D may comprise information suchas, but not limited to, frequency, tempo, sound pressure, loudness,beat, energy, and other similar acoustic features. Much of the contentof the song acoustic feature database 122D may also be supplied bythird-party vendors available as of this writing. The song acousticfeature database 122D may sort or categorize songs based on elementssuch as, but not limited to, mood. The song acoustic database 122D mayalso store information about each song such as, but not limited to,genre of music (i.e. classical, rock, rap, etc.), type of instrumentspresent within a song (i.e. symphony, electric guitar, piano, etc.), thetype of vocals present within the song (i.e., choir, solo vocals, etc.).The song acoustic feature database 122D may be a result of a combinationof two or more third-party databases that address acoustic features ofsongs.

The lyrics database 122E may comprise lyrics to songs which are thewords of songs as understood by one of ordinary skill the art. Thisdatabase 122E may also comprise names and addresses of the holders ofthe copyrights for the lyrics. The content of the lyrics database 122Emay be supplied by third-party vendors available as of this writing. Thelyrics database 122E may also comprise keywords which are extracted withmachine learning algorithms and natural language processing asunderstood by one of ordinary skill the art. The machine learningalgorithms and natural language processing algorithms may reside withinthe song categorization module 120 which performs this analysis but thenstores the results of the analysis in the lyrics database 122E.

These five databases 122A-122E are accessible by the song categorizationmodule 120. The song categorization module 120 performs text mining,natural language processing, and other analysis with respect to the datawhich is available from these five databases. After this analysis isperformed, the song categorization module 120 populates the songcategorization database 118.

The song categorization database 118 may comprise a plurality ofdifferent tables. One exemplary table may include a song table 202.Another exemplary table may comprise a song categories table 214. Thesetwo tables 202, 214 are illustrated in FIGS. 2A-2B.

Referring now to FIG. 1C, this figure illustrates an exemplary screendisplay 150A for a portable computing device 100, such as a mobilephone. The screen display 150A may include a song identifier 159 thatcomprises a title of the song and the name of the Musical artist. Thescreen display 150A may further comprise album art 155. Album art 155 isusually the cover of packaging for phonorecords that may bear themachine-readable music, such as compact disc and/or records, etc.

The screen display 150A may further include customized content 157A andmusic player controls 163. The customized content 157A is generated asthe output from subsystem 99 described and illustrated in FIG. 1B.According to one exemplary embodiment, the customized content 157A maycomprise advertising which was determined as relevant to the musicconsumer based on the processes performed by the subsystem 99 describedabove in connection with FIG. 1B and which will be described in furtherdetail below in connection with FIGS. 3-6.

In the exemplary embodiment illustrated in FIG. 1C, the customizedcontent 157A comprises an advertisement for a product such as flowers.However, as understood by one of ordinary skill the art, any type ofproducts and/or services may be part of the customized content 157Awhich is determined by the subsystem 99. As described above, thesubsystem 99 is the determining what customized content 157A would bemost relevant to the music consumer so that such content would encouragethe music consumer to go out and purchase services and/or productsforming part of the customized content 157 or so that such content wouldencourage the most engagement from the music consumer.

Categories of the customized content may include, but are not limitedto, arts and entertainment; automotive; business; careers; education;family; parenting; health and fitness; food and drink; hobbies andinterests; law, government and politics; news; arts and entertainment;Society; science; pets; sports; style and fashion; technology andcomputing; travel; real estate; shopping; religion and spirituality; andsocial media, just to name a few.

The customized content 157 may comprise plain text, or may comprisebanner ads which include graphics and/or photos. However, the customizedcontent 157 may comprise other elements such as hypertext links,playable video feeds, commands to open small downloadable applications,and other similar content, etc.

In the exemplary embodiment illustrated in FIG. 1C, the title of thesong being played is “Roses are red . . . ” The song may be an upliftingsong and has an upbeat tempo and which has lyrics that mention flowers.The album art 155 may also depict a pleasant scene such as mountains,the sun, and even flowers. Based on this information, the subsystem 99may determine that customized content 157 should comprise subject matterthat may relate to flowers. As understood by one of ordinary skill inthe art, other products and/or services and/or content may be determinedby the subsystem 99 and is dependent on the music being conveyed to theoperator of the PCD.

Referring now to FIG. 1D, this figure illustrates an exemplary screendisplay 150B for a portable computing device 100, such as a mobilephone. FIG. 1D is similar to the exemplary screen display 150A FIG. 1C,therefore, only differences between these two figures will be described.The customized content 157B of this exemplary embodiment may compriseinteractive features that request feedback from the operator of the PCD100. In this particular embodiment, the customized content 157B maycomprise a question with multiple choices of answers that may beselected by the operator of the PCD 100.

The information collected from the operator's interaction with thecustomized content 157B may be stored in a profile managed by thesubsystem 99. For example, the profile may be stored and managed in thelistener knowledge database 112 as described above. In the exemplaryembodiment illustrated in FIG. 1D, the customized content 157B isrequesting the operator of the PCD 100 to select his or her preferencewith respect two types of flowers. This customized content 157B directlycorresponds to the customized content 157A of FIG. 1C described above.

The listener knowledge database 112 may be characterized as a learningdatabase as it learns the preferences for each subscriber/operator of aPCD 100. The listener knowledge database 112 can assist in makingrecommendations for preferences in the content selection process as willbe described below.

Referring now FIG. 2A, this figure illustrates an exemplary song table202 that is stored in the song categorization database 118. The songtable 202 may comprise several different columns of data relevant totracking songs. Exemplary columns include, but are not limited to, asong ID column 204, a song title column 206, a release date column 208,an album title column 210, and an artist name column 212. The song IDcolumn 204 may be associated with the song categories table 214 asillustrated in FIG. 2B.

Referring now to FIG. 2B, this figure illustrates an exemplary songcategories table 214 which is generated by the song categorizationmodule 120. The song categories table 214 may comprise several differentcolumns of data relevant to categorizing songs by industry, genre, mood,popularity, geographical locations, brand, features, and other likecharacteristics. Specific subcategories within these broader categories,may include, but are not limited to, industries such as, automobiles;traffic; flowers; friendship; real estate; voting; cruises and charters;casinos; animals; weather, travel; fast food; running and walking;beverages like beer; locations like New York, Puerto Rico; genres likerock; classical; popularity indexes such as song popularity; artistpopularity; whether a recording is a live or a studio recording, and soon.

In the exemplary embodiment illustrated in FIG. 2B, exemplary columns ofdata include, but are not limited to, a song ID column 204, an item typecolumn 216, an item column 218, and an item weighting column 220. Thesong ID column 204 generally corresponds to the similarly labeled columnin the song table 202 of FIG. 2A.

The item type column 216 may list several different types of categoriesfor a particular song as described above. The item column 218 list thespecific category based on the item type 216 identified for a particularsong. The item weighting column 220 lists a predetermined weight withrespect to an item for a particular song that is determined by the songcategorization module 120 and which will be described in further detailbelow in connection with FIG. 6.

Reviewing the first row of the table 214, it is understood that the songID having the value of “1” has been associated by the songcategorization module with a particular industry as indicated by theitem type in column 216. In this particular example, that particularindustry is traffic as indicated by column 218. This traffic industryhas been assigned a relative weighting of 0.76 as indicated by the itemweighting column 220.

One of ordinary skill the art appreciates that other item types andweightings are possible and are within the scope of this disclosure.Further, additional or fewer columns for the song table 202 and the songcategories table 214 may be utilized and would be within the scope ofthis disclosure. The song categorization database 118 comprising thesetables 202, 214 is constantly updated by the song categorization module120 as the song categorization module 120 collects data from each of itsfive databases 122 described above.

The song categorization module 120 in one exemplary embodiment functionsas an expert system in which rules may be generated by operators whohave based knowledge with respect to how songs and related informationshould be categorized in order to select relative content for listeners.According to other exemplary embodiments, a song categorization module120 may comprise machine learning algorithms which improve over time inresponse to the updates and changes made to the five main databases 122.

The campaign database 116 and the content database 110 may be part ofsubsystem 99 or they may reside outside of subsystem 99 and may bemaintained by third parties relative to the subsystem 99. The campaigndatabase 116 may comprise criteria from advertisers on the whenadvertisements should be displayed to a particular user or subscriber ofthe music database/streaming service 106.

Such criteria in the campaign database 116 may include, but is notlimited to, demographic data such as male or female, ages, personalinterests, geographic locations like cities, types of songs that shouldbe associated with the particular campaign, industries that should beassociated with the particular campaign, and moods of songs relevant toparticular products and/or services, etc. Campaigns may be associatedwith products and/or services. In alternative embodiments, a campaignmay not necessarily be an advertisement and it may not be associatedwith a product or service. It may comprise news information and/orsocial media information mentioned previously.

The campaign database 116 may further comprise pricing data such as, butnot limited to, prices an advertiser is willing to pay for cost perimpression with a particular subscriber of the music database/streamingservice 106.

The campaign database 110 may comprise the actual content that will bedisplayed or conveyed in other ways to the listener or subscriber of themusic database/streaming service 106. The campaign database 116 mayreference the content stored in this campaign database 110. It is alsopossible that the campaign database 116 simply has a reference to acontent URL (another content database not illustrated) and it may notreference the content database 116 itself in such a scenario. Rather,the content selection module 108 may determine the winning campaign, andthen obtains a universal resource locater (URL) from the campaigndatabase 116 which references another external database (notillustrated) and retrieves that content from that external database (notillustrated) via the URL. The content within the content database maycomprise advertisements and/or other types of information as mentionedpreviously.

The listener knowledge database 112 is coupled to the listenercategorization module 114 as mentioned previously. The listenerknowledge database 112 may maintain a profile for each listener and suchprofiles may include a unique identifier associated with each particularportable computing device 100 used by a listener. The profiles may alsoinclude cookies that track Internet content being browsed by theoperator of the portable computing device 100.

The profiles may also include geographical coordinates generated by theGPS unit of the portable computing device 100. The profiles may includeinformation such as responses generated by the operator of the PCD 100in connection with customized content that request input from theoperator such as illustrated in FIG. 1D described above (i.e.—answers toquestions of interest to the operator of the PCD 100).

Profiles may further include information that the listenercategorization model 114 may retrieve from social media such as personalwebsites, like FACEBOOK™ profiles, TWITTER™ accounts, LINKED-IN™profiles, and other social media sources etc. Profiles on listeners inthe listener categorization module 114 may also track prior songs listento by the listener in connection with the music database/streamingservice 106.

The profiles contained within the listener knowledge database 112 aremaintained and updated by the listener categorization module 114. Thelistener categorization module 114 may also retrieve other relevant datain connection with the geographical coordinates that it may receive fromthe portable computing device 100. For example, a listenercategorization module 114 may determine that the portable computingdevice 100 is within an automobile and that the automobile is travelingon a particular road. The listener categorization module 114 may thenretrieve data from automobile traffic databases to determine the currentstate of traffic relative to the location of the portable computingdevice. The listener categorization module may also determine theweather conditions for the location of the portable computing device 100based on the geographical coordinates.

A listener profile stored within the listener knowledge database 112 mayinclude the following exemplary information: user ID 1234 is a male whois 38 years old and is currently driving a car on Route 185 north ofAtlanta and the current weather conditions are sunny with a temperatureof 65° F. This male prefers music genres of rock'n roll and some punkrock. The portable computing device 100 is model XYZ manufactured by ABCbrand of computers.

The content selection module 108 is coupled to the content database 110,the listener knowledge database 112, the campaign database 116, and thesong categorization database 118. The content selection module 108compares each song being played with the listeners profile and with thecampaigns available in the campaign database 116 to determine whichcontent from the content database 110 is the best match for a listener.The content selection module 108 then takes the selected content andtransmits it to the content presentation module 102, which may alsoreside on the portable computing device 100.

As described above, the content from the content database 110 maycomprise advertising but is not limited to advertising. For exampleother content may include, but is not limited to, trivia, referentialinformation, weather conditions such as temperature, wind speed, weatherforecast, news, social media information, and other types of informationwhich is not advertising but is relevant to a user's profile plus themusic being consumed.

The content presentation module 102 may generate the visual and/or audiocomponents relative to the content which was selected by the contentselection module 108. For example, the content presentation module 102may generate the album art associated with the current song which isbeing presented with the song presentation module 104 from the musicdatabase/streaming service 106. According to one exemplary embodiment,the content selection module 108 may combine selected content from thecontent selection module 108 with album art in order to create a singlefile that comprises content, such as an advertisement, combined with thealbum art in a single file that is transmitted to the portable computingdevice 100 while the current song is being played using the songpresentation module 104.

The content may comprise a hypertext link which is “tappable” so thatthe hypertext link is activated upon tapping by the listener. Forexample, such as illustrated in FIG. 1C, the customized content 157A.may comprise a hypertext link 177 which allows the listener to navigatewith an Internet browser to a particular product website while he or sheis listening to a current song. As another example, the content maycomprise a video clip or a hypertext link which takes you to a videoclip like an advertisement for a new movie being played in a movietheater. The content presentation module 102 may comprise a server-sidemodule as well as a client-side module which resides on the portablecomputing device 100.

The music database/streaming service 106 may comprise any one of thirdparty music streaming services known as of this writing. For example,exemplary music databases/streaming services 106 may comprise SPOTIFY™,YOUTUBE™, PANDORA™, SLACKER RADIO™, just to name a few. In otherexemplary embodiments, the music database/streaming service 106 couldcomprise work with files existing within the portable computing device100 such as MP3 files and/or iTunes type files.

The song presentation module 104 may comprise a client side applicationwhich resides on the portable computing device 100 as understood by oneof ordinary skill the art. A portion of the song presentation module 104may also reside on the music database/streaming service 106.

FIG. 3 is a logical flow diagram illustrating a method 300 for selectinginformation content relevant to a music subscriber according to oneexemplary embodiment. Block 305 is the first step of method 300. Inblock 305, the music subscriber selects music to play with his or herportable computing device 100. In this block, the portable computingdevice 100 may transmit commands over the communications network 142 toboth the song presentation module 104 residing on the musicdatabase/streaming service 106 and the listener categorization module114.

In response to these commands, the song presentation module 104 residingon the music database/streaming service 106 may transmit streaming musicsignals over the communications network 142 to the song presentationmodule 104 residing on the portable computing device 100.

Next, in block 315, the profile of the basic subscriber as well asdevice information is transmitted from the portable computing device 100over the communications network 142 to the listener categorizationmodule 114. The device information may comprise geographical coordinatesascertained from a GPS unit on the portable computing device 100.

The device information may further comprise the current operating systemversion for the portable computing device 100, and the local date andtime as tracked by the portable computing device 100 and cookies andother data residing on the portable computing device 100. In block 320,the current song being played and information related to the song may betransmitted from the music database/streaming service 106 over thecommunications network 142 to the content selection module 108.

Blocks 315 and 320 are illustrated as being run in parallel to oneanother as understood by one of ordinary skill in the art. This meansthat the steps in the blocks may be performed simultaneously or inparallel with one another.

After block 315, then in routine block 400 the categorization module 114may perform its subroutine or sub process which will be described infurther detail below in connection with FIG. 4. In this routine block400, the listener categorization module 114 is refining the preferencesand information with respect to the profile maintained on the musicsubscriber in the listener knowledge database 112. At the end of thisroutine block 400, any real-time context information that is available,such as time of day, geographical location, weather, etc. has beenmerged with the profiles and preferences stored for the music subscriberand the listener knowledge database 112. The profiles and preferences ofthe music subscriber may comprise demographic information such as, butnot limited to, age, religious affiliation, political orientation, sex,name, home address, and other similar information.

Subsequently, in block 325, the listener categories that were created asa result of the listener categorization subroutine or sub process 400are transmitted to the content selection module 108.

Meanwhile, after block 320 in which the song information was transmittedto the content selection module 108, in block 330, the content selectionmodule 108 performs a matching process with the song categorizationdatabase 118 or the content selection module 108 sends a query to thesong categorization database. As noted previously, the songcategorization database 118 is generated in advance of song being playedby a music subscriber with her portable computing device 100.

In other words, the song categorization database 118 has beenpre-populated with data for millions of songs with the intent that thecontent selection module 108 will find a match of categories associatedwith a particular song fairly quickly while it is currently being playedby a music subscriber on the portable computing device 100.

In decision block 335, the content selection module 108 determines ifcategories have been found for the particular song being played by themusic subscriber on the portable computing device 100. If the inquiry todecision block 335 is positive, then the “YES” branch is followed toblock 340 in which the categories associated with the currently playedsong are transmitted to the content selection module 108.

For example, referring briefly to table 202 of FIG. 2A, if the currentsong being played has the song identifier of “1”, then a match would befound in the song categories table 214 for all song identifiers having avalue of “1” in column 204. So for the song identifier having a value of“1”, the industries related to the song as listed in the first fourcolumns of table 214, are traffic, flowers, friendship,apartments/rentals. These industries would be transmitted to the contentselection module 108 in association with the song identifier having avalue of “1.”

If the inquiry to decision block 335 is negative, then the “NO” branchis followed to routine or sub process block 500 in which a songcategorization processes initiated for the particular song being played.

Further details of routine or sub process block 500 will be describedbelow in connection with FIG. 5. if the content selection module 108does encounter a song which has not been matched meaning that it has notbeen categorized within the song categorization database 118.

Then the song categorization module 120 may run an abbreviated/truncatedcategorization process in block 500 in order to conserve time since thecurrent song being played by the music subscriber on the portablecomputing device 100 has a finite limit probably only a few minutes. Thesong categorization module 120 may flag a particular unmatched song forlater or subsequent processing after the abbreviated processing hasoccurred to yield some meaningful, yet abbreviated matching results. Inother exemplary embodiments, if no match is found at the end of decisionblock 335, the song categorization process 500 may be skipped in orderto conserve on time.

In routine block 600, the content selection module 108 executes itscontent selection process which will be described in further detailbelow in connection with FIG. 6. At the end of this routine block 600,the content selection module 108 has selected the content 157 that isdeemed to be the most relevant to the song being played and mostrelevant to the music subscriber.

In block 345, the content presentation model 102 receives the selectedcontent 157 from the content selection module 108 and formats thisinformation for presentation on the portable computing device 100. Inthis block 345, the content presentation model 102 residing on theserver side of the subsystem 99 may transmit the formatted content 157as a message over the communications network 142 to the portablecomputing device 100.

In optional decision block 350, the content presentation module 102Bresiding on the portable computing device 100 may determine if the musicsubscriber has interacted with any of the selected content 157. Forexample, content 157B displayed on the portal computing device 100 maycomprise a series of questions such as illustrated in FIG. 1D describedabove.

Decision block 350 is highlighted with dashed lines to indicate thatthis block is optional. In other words, if the content 157 does notrequire any interaction from the music subscriber, then this decisionblock 350 may be skipped and the process 300 may proceed to decisionblock 360.

If the inquiry to decision block 350 is positive meaning that the musicsubscriber has interacted with the content 157, then the “YES” branchmay be followed to optional block 355. In optional block 355, theinteraction or information collected from the content 157 is transmittedfrom the portable computing device 100 over the communications network142 to the listener categorization module 114. Optional block 355 isalso highlighted with dashed lines to indicate that this step may beskipped if the content 157 does not require any interaction from themusic subscriber.

If the inquiry to optional decision block 350 is negative, then the “NO”branch is followed to decision block 360. In decision block 360, thesong presentation model 104B residing on the portable computing device100 determines if the next song is going to be played by the portablecomputing device 100.

Alternatively, decision block 360 may have a threshold of time meaningthat additional content may be selected and presented to the musicsubscriber if the music database/streaming service provider desires morethan one piece of content to be presented to a music subscriber during asingle song. In other words, decision block 360 may comprise a timethreshold that may be arbitrarily selected by the musicdatabase/streaming service provider. Such time limits may be on theorder of every ten, twenty, or thirty seconds, given that most musicscores may range between two and four minutes in length.

If the inquiry to decision block 360 is positive, then the “YES” branchis followed back to block 310. If the inquiry to decision block 360 isnegative, then the “NO” branch is followed in which the process ormethod 300 ends.

FIG. 4 is a logical flow diagram illustrating a submethod or routine 400of FIG. 3 for tracking profile data of the music subscriber as well asany relevant context information (geographical location, situationalinformation, etc.) that may be ascertained from the portable computingdevice according to one exemplary embodiment. Block 405 is the firststep of submethod or routine 400.

In block 405, the portable computing device 100 may transmit over thecommunications network 142 to the listener categorization module 114features about the portable computing device 100 such as the type ofportable computing device 100, the model of the portable computingdevice 100, the current operating system of the portable computingdevice 100, and any related software that is loaded on the portablecomputing device 100 which may be relevant to the musicsubscription/playing service.

In block 410, the portable computing device 100 may also transmitcontext information as well as other information to the listenercategorization module 114. Other context information may includeaccelerometer data to determine that the portable computing device 100is moving within a vehicle. Other information may include softwarespecific information such as cookies, and other types of data collectedwith application software running on the portable computing device 100.Other information may also include data collected by the songpresentation module 104B residing on the portable computing device.

Data which is collected by the song presentation model 104B may betransmitted back to the music database/streaming service 106. This datacollected by the song presentation model 104B may be shared with thelistener categorization module 114B residing on the portable computingdevice and/or the data may be provided directly by the musicdatabase/streaming service 106 through the content selection model 108.Alternatively, the song presentation model 104A may be instructed totransmit any of its data over the communications network 142 to thelistener categorization module 114A residing on the server side of thesubsystem 99.

After block 410, in decision block 415, the listener categorizationmodule 114A on the server side determines if the musicsubscriber/listener exists in the current iteration of the listenerknowledge database 112. If the inquiry to decision block 415 ispositive, then the “YES” branch is followed to decision block 440. Ifthe inquiry to decision block 415 is negative, then the “NO” branch isfollowed to decision block 420.

In decision block 420, the listener categorization module 114A maydetermine if the music subscriber/listener has granted permission toaccess any social media accounts maintained by the subscriber/listenersuch as, but not limited to, any TWITTER™ accounts, FACEBOOK™ accounts,MYSPACE™ accounts, and/or LINKED-IN™ accounts, etc. Usually, duringinstallation of the song presentation module 104B residing on theportable computing device 100 the listener will be prompted to grantpermissions for accessing any active social media accounts by the musicstreaming software.

If the inquiry to decision block 420 is negative meaning that thelistener did not give permission to any of his or her social mediaaccounts, then the “NO” branch is followed to block 435. If the inquiryto decision block 420 is positive, then the “YES” branch is followed toblock 425.

In block 425, the listener categorization module 114 may obtain listenermetadata from social media and transmit this metadata to the listenerknowledge database 112. Next, in decision block 430, the listenercategorization module 114 may determine if the listener profile iscomplete. The listener categorization module 114 may determinecompleteness based on the number of fields that contain data within aparticular profile.

If the listener categorization module 114 does not reach a predeterminedthreshold which may be adjusted on occasion, the listener categorizationmodule 114 may ask for additional information from the musicsubscriber/listener him or herself. In other words, if the inquiry todecision block 430 is negative, then the “NO” branch may be followed toblock 435 in which the listener categorization module 114 requestsadditional information or metadata from the listener directly and thentransmits this information to the listener knowledge database 112.

If the inquiry to decision block 430 is positive meaning that thelistener categorization module 114 has determined that the listenerprofile was complete or has reached a predetermined level, then the“YES” branch is followed to block 445.

In decision block 440, the listener categorization module 114 maydetermine if it is time to update the listener knowledge database 118with respect to the listener/music subscriber being evaluated. Thisdecision block 440 may comprise a timing threshold such as on the orderof minutes, hours, or days. For example, the listener categorizationmodule 114 may update profiles of music subscribers once a day so thatunnecessary and/or excess processing does not occur during high-volumeuses of the subsystem 99.

If the inquiry to decision block 440 is positive, then the “YES” branchis followed back to decision block 420. If the inquiry to decision block440 is negative, then the “NO” branch is followed to block 445.

In block 445, the listener categorization module 114 transmits the localdate and time being tracked by the portable computing device to thelistener knowledge database 112. In block 450, the listenercategorization module 114 transmits the location of the portablecomputing device 100, such as its geographical coordinates, to thelistener knowledge database 112.

Based on this information from blocks 445 and 450, the listenercategorization model 114 may obtain real-time metadata for the musicsubscriber/listener based on the geographical location of the portablecomputing device 100. This real-time metadata may comprise informationsuch as, but not limited to, weather, traffic conditions, whether theportable computing device 100 is present within a moving vehicle or not,etc.

Next, in block 460, the listener categorization module 114 in view ofall of the data retrieved in blocks 425, 435, 445, 450, and 455, it mayassign the music subscriber/listener to one or more predefinedcategories and then transmits these categories to the listener knowledgedatabase 112. For example, such categories include, but are not limitedto, gender, age, religious affiliation, political orientation, etc.

Subsequently, in block 465 after the listener categorization module 114has assigned the listener/subscriber to the one or more predefinedcategories, the categorization module 114 then transmits thesecategories to the content selection module 108. This submethod 400 thenreturns to block 325 of FIG. 3.

FIG. 5 is a logical flow diagram illustrating a submethod or routine 500of FIG. 3 for categorizing songs according to one exemplary embodiment.As noted previously, this song categorization submethod 500 is usuallyperformed off-line or at a different time while a musicsubscriber/listener is listening to a song. If a song that is selectedby a music subscriber is not found in the song categorization database118, then a truncated/abbreviated version of a submethod 500 may beexecuted in order to conserve time.

The song categorization database 118 may follow one or more industrystandards and how it categorizes songs. For example, the songcategorization database 118 may follow Exhibit A on IAB contextualtaxonomy, developed by IAB networks and exchanges of quality assuranceguidelines version 1.5 which is available as of this writing. Exhibit Aon the IAB contextual taxonomy lists several different tier 1 broadcategories in several different tier 2 narrower categories which fallwithin the tier 1 broad categories. Some of the tier 1 broad categoriesinclude, but are not limited to, arts and entertainment; automotive;business; careers; education; family and parenting; health and fitness;food and drink; hobbies and interests; home and garden; while governmentand politics; news; personal finance; Society; science; that's; sports;style and fashion; technology and computing; travel; real estate;shopping; religion and spirituality; and uncategorized which currentlyincludes just social media as its tier 2 category.

Block 503 is the first step of submethod or routine 400. In block 503,the song categorization module 120 retrieves a song and determines inblock 506 if the song is new relative to the song categorizationdatabase 118. If the inquiry to decision block 506 is negative, then the“NO” branch is followed to block 518 in which the song categorizationmodule 120 determines if the song acoustic feature database updateprocess needs to be started/executed.

If the inquiry to decision block 506 is positive meaning that the songis new relative to the song categorization database 118, then the “YES”branch is followed to block 509. In block 509, the song categorizationmodule 120 may work with the lyrics database 122E along with a lyricprocessing algorithm for analyzing a particular song.

In this block 509, natural language processing (NLP), theme extractionprocessing, text based extraction algorithms as understood by one ofordinary skill the art may be used in which keywords, sentiment andthemes are extracted from the lyrics of a particular song. Next, inblock 512, based on the keywords which were extracted, the songcategorization module 120 may assign the keywords to predefinedcategories such as traffic, flowers, friendship as discussed above inconnection with the songs categories table 214 as illustrated in FIG.2B.

The remaining blocks 518, 521, 524, 527, 530; 533, 536, 539, 542, 545;548, 551, 554, 557, 560; and 563, 566, 569, 572, 575 all flow similarlyrelative to blocks 503-515. With respect to blocks 518-530 which addressacoustic processing of a song, in block 524 in which acoustic processingalgorithms are used to analyze a song, various parameters of the songmay be analyzed separately. Such parameters include, but are not limitedto, tempo, frequency, sound pressure, energy, and any third-partyinformation gathered from other databases which may have analyzed theacoustics of the particular song. After decision block 575, in block578, song assignments are then transmitted to the song categorizationdatabase.

With respect to blocks 533-545, 548-560, and 563-575, the songcategorization module 120 may review databases over the Internet foreach song according to genre and popularity. The song categorizationmodule may also apply natural language processing to social media feedssuch as, but not limited to, TWITTER™ feeds, blog posts, webpages,websites (i.e.—FACEBOOK™, MYSPACE™, LINKED-IN™, pages, etc.) in order togather information for individual songs (blocks 533-545), for albums(blocks 548-560), and for artists (blocks 563-575). Additionally, thesong categorization module 120 in these blocks may also receive datafrom experts who have knowledge about how well a song, album, or artistsrelate to industries, genres, popularity, places, mood, etc. (item typesin column 216 of table 214 of FIG. 2B).

FIG. 6 is a logical flow diagram illustrating a submethod or routine 600of FIG. 3 for selecting content relevant to a particular song accordingto one exemplary embodiment. Block 605, is the first step of submethodor routine 600.

In block 605, the content selection module 108 obtain song categoriesfrom the song categorization database 118 which have been associated ordeemed relevant to a particular song that is being played by the musicsubscriber on his or her portable computing device 100. Next, in block610, the content selection module 108 obtain the listener categoriesassociated with the music subscriber/listener in the listener knowledgedatabase 112 based on the listener categorization subprocess or routine400 of FIG. 4.

Next, in block 615, the content selection module 108 compares the datait retrieved from block 605 and 610 (from the song categorizationdatabase 118 and the listener knowledge database 112) to campaigns inthe campaign database 116. Next, in decision block 620, the contentselection module 108 determines if there are any matches.

For example, in decision block 620, the content selection module 108 mayhave data from the song categorization database 118 that reflects thatthe current song being played has a mood which is happy and addressesthe industry of flowers. Meanwhile, data from the listener knowledgedatabase 112 reflects that the listener is a male person who isthirty-eight years of age and is married. The current date reflects thatit is Valentine's Day. With this data from databases 112, 118, thecontent selection module 108 will look for campaigns that match theindustry of flowers and may be relevant to Valentine's Day.

If the inquiry to decision block 620 is positive meaning that one ormore matches are found, then the “YES” branch is followed to block 625.If the inquiry to decision block 620 is negative, then the “NO” branchis followed in which the submethod 600 returns to block 345 of FIG. 3.

Usually, more than one match may be discovered with the contentselection module 108 in which the “YES” branch is followed to block 625.In block 625, the content selection module 108 may conduct a real-timebidding process as understood by one of ordinary skill in the art. Areal-time bidding process may include item weighting, such asillustrated in column 220 of table 214 of FIG. 2B, and other parametersas understood by one of ordinary skill in the art.

For example, suppose that ten campaigns from the campaign database 116match one or more categories associated with the current song beingplayed by the music subscriber on his or her portable computing device100. The single campaign to be selected out of the ten campaigns shouldbe one that yields the highest rate of return for the content provider.One or more algorithms as understood by one of ordinary skill the artmay be used to conduct this real-time bidding process. Exemplaryexisting off-the-shelf software that exists as of this writing which mayassist with the real-time bidding process includes APPNEXUS™ brandsoftware. The real-time bidding process may follow one or more industrystandards that may exist as of this writing. For example, one standardthat may be followed is the Open Real-Time Bidding (RTB) standard,supported by IAB, that currently exists as of this writing.

Next, in block 630, the optimal campaign is selected by the contentselection module 108 as a result of the real-time bidding process andbased upon the parameters and criteria present in each campaign.Subsequently, in block 635, the content selection module queries thecontent database 110 for the content associated with the selectedoptimal campaign from block 630.

And in block 640, the content selection module 108 transmits theselected content to the content presentation module 102A for formattingand transmission across the communications network 142 to the contentpresentation model 102B residing on the portable computing device 100.The submethod/routine 600 then returns to block 345 of FIG. 3.

FIG. 7 is a functional block diagram of an exemplary, non-limitingaspect of a PCD 100 in the form of a wireless telephone for use inidentifying content relevant to a user based on contextual informationfrom music and music player environmental factors. The PCD 100 of FIG. 7corresponds to the PCD 100 of FIG. 1A.

As shown, the mobile telephone 100 includes an on-chip system 722 thatincludes a digital signal processor or a central processing unit 724 andan analog signal processor 726 that are coupled together. As illustratedin FIG. 7, a display controller 728 and a touchscreen controller 730 arecoupled to the digital signal processor 724. A touchscreen display 732external to the on-chip system 722 is coupled to the display controller728 and the touchscreen controller 730.

FIG. 7 further illustrates a video encoder 734, e.g., aphase-alternating line (“PAL”) encoder, a sequential couleur avecmemoire (“SECAM”) encoder, a national television system(s) committee(“NTSC”) encoder or any other video encoder, is coupled to the digitalsignal processor 724. Further, a video amplifier 736 is coupled to thevideo encoder 734 and the touchscreen display 732. A video port 738 iscoupled to the video amplifier 736. As depicted in FIG. 7, a universalserial bus (“USB”) controller 740 is coupled to the digital signalprocessor 724. Also, a USB port 742 is coupled to the USB controller740. A memory 712 and a subscriber identity module (“SIM”) card 746 mayalso be coupled to the digital signal processor 724.

Further, as shown in FIG. 7, a digital camera 735 may be coupled to thedigital signal processor 724. In an exemplary aspect, the digital camera735 is a charge-coupled device (“CCD”) camera or a complementarymetal-oxide semiconductor (“CMOS”) camera.

As further illustrated in FIG. 7, a stereo audio CODEC 750 may becoupled to the analog signal processor 726. Moreover, an audio amplifier752 may be coupled to the stereo audio CODEC 750. In an exemplaryaspect, a first stereo speaker 754 and a second stereo speaker 756 arecoupled to the audio amplifier 752. FIG. 7 shows that a microphoneamplifier 758 may be also coupled to the stereo audio CODEC 750.Additionally, a microphone 760 may be coupled to the microphoneamplifier 758. In a particular aspect, a frequency modulation (“FM”)radio tuner 762 may be coupled to the stereo audio CODEC 750. Also, a FMantenna 764 is coupled to the FM radio tuner 762. Further, stereoheadphones 766 may be coupled to the stereo audio CODEC 750.

FIG. 7 further illustrates a radio frequency (“RF”) transceiver 768 thatmay be coupled to the analog signal processor 726. An RF switch 770 maybe coupled to the RF transceiver 768 and an RF antenna 772. The RFtransceiver 768 may communicate with conventional communicationsnetworks 142.

As shown in FIG. 7, a keypad 774 may be coupled to the analog signalprocessor 726. Also, a mono headset with a microphone 776 may be coupledto the analog signal processor 726. Further, a vibrator device 778 maybe coupled to the analog signal processor 726. FIG. 7 also shows that apower supply 780 may be coupled to the on-chip system 722. In aparticular aspect, the power supply 780 is a direct current (“DC”) powersupply that provides power to the various components of the mobiletelephone 101 that require power. Further, in a particular aspect, thepower supply is a rechargeable DC battery or a DC power supply that isderived from an alternating current (“AC”) to DC transformer that isconnected to an AC power source.

FIG. 7 also shows that the mobile telephone 100 may include a globalpositioning system (“GPS”) module 715. The GPS module 115 may comprisehardware and/or software. The GPS module 715 may be coupled to theprocessor 724. Also coupled to the processor 724 may be a compass 720,an accelerometer 725, and the content presentation module 102 describedabove.

As depicted in FIG. 7, the touchscreen display 732, the video port 738,the USB port 742, the camera 735, the first stereo speaker 754, thesecond stereo speaker 756, the microphone 760, the FM antenna 764, thestereo headphones 766, the RF switch 770, the RF antenna 772, the keypad774, the mono headset 776, the vibrator 778, and the power supply 780are external to the on-chip system 722.

In a particular aspect, one or more of the method steps described above(such as illustrated in FIGS. 3-6) may be stored in the memory 712 ascomputer program instructions. These instructions may be executed by thedigital signal processor or central processing unit 724, the analogsignal processor 726, or another processor, to perform the methods300-600 described herein. Further, the processors, 724, 726, the memory712, the instructions stored therein, or a combination thereof may serveas a means for performing one or more of the method steps describedherein.

FIG. 8 is a functional block diagram of an exemplary, nonlimiting aspectof a general-purpose computer for implementing a method 300 foridentifying content relevant to a user based on contextual informationfrom music and music player environmental factors. The exemplaryoperating environment for the system 101 of FIG. 1A includes ageneral-purpose computing device in the form of this conventionalcomputer 99, 106, and 133. This means that the content identifier andselection subsystem 99, the music database/streaming service provider106, and the content producer/advertiser 133 may all comprise generalpurpose computers.

Generally, a computer 99 includes a processing unit 821, a system memory822, and a system bus 823 that couples various system componentsincluding the system memory 822 to the processing unit 821. The systembus 823 may be any of several types of bus structures including a memorybus or memory controller, a peripheral bus, and a local bus using any ofa variety of bus architectures. The system memory includes a read-onlymemory (ROM) 824 and a random access memory (RAM) 825. A basicinput/output system (BIOS) 826, containing the basic routines that helpto transfer information between elements within computer 99, such asduring start-up, is stored in ROM 824.

The computer 99 can include a hard disk drive 827A for reading from andwriting to a hard disk, not shown, a magnetic disk drive 828 for readingfrom or writing to a removable memory device 829, and an optical diskdrive 830 for reading from or writing to a removable optical disk 831such as a CD-ROM or other optical media. Hard disk drive 827A, memorydevice drive 828, and optical disk drive 830 are connected to system bus823 by a hard disk drive interface 832, a removable memory interface833, and an optical disk drive interface 834, respectively.

Although the exemplary environment described herein employs hard disk827A, removable memory 829, such as a USB drive and/or flash memory, andremovable optical disk 831, it should be appreciated by those skilled inthe art that other types of computer readable media which can store datathat is accessible by a computer, such as magnetic cassettes, flashmemory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, andthe like, may also be used in the exemplary operating environmentwithout departing from the scope of the invention. Such uses of otherforms of computer readable media besides the hardware illustrated willbe used in internet connected devices such as in portable computingdevices (PCDs) 100 that may include cellular phones and/or personaldigital assistants (PDAs).

The drives and their associated computer readable media illustrated inFIG. 8 provide nonvolatile storage of computer-executable instructions,data structures, program modules, and other data for computer 99. Anumber of program modules may be stored on hard disk 827, removablememory 829, optical disk 831, ROM 824, or RAM 825, including, but notlimited to, an operating system 835, a content presentation module 102A,and a listener categorization module 114A.

Program modules include routines, sub-routines, programs, objects,components, data structures, etc., which perform particular tasks orimplement particular abstract data types. Aspects of the presentinvention may be implemented in the form of a downloadable, contentpresentation module 102B which is executed by a PCD 100, like a mobiledevice or computer 99 in order to identify content relevant to a userbased on contextual information from music and music playerenvironmental factors.

A user may enter commands and information into computer 99 through inputdevices, such as a keyboard 840 and a pointing device 842. Pointingdevices may include a mouse, a trackball, and an electronic pen that canbe used in conjunction with an electronic tablet. Other input devices(not shown) may include a microphone, joystick, game pad, satellitedish, scanner, or the like.

These and other input devices are often connected to processing unit 821through a serial port interface 846 that is coupled to the system bus823, but may be connected by other interfaces, such as a parallel port,game port, a universal serial bus (USB), or the like.

The display 847 may also be connected to system bus 823 via aninterface, such as a video adapter 848. As noted above, the display 847can comprise any type of display devices such as a liquid crystaldisplay (LCD), a plasma display, an organic light-emitting diode (OLED)display, and a cathode ray tube (CRT) display.

The camera 735 may also be connected to system bus 823 via an interface,such as an adapter 870. As noted previously, the camera 735 can comprisea video camera such as a webcam. The camera 735 can be a CCD(charge-coupled device) camera or a CMOS (complementarymetal-oxide-semiconductor) camera. In addition to the monitor 847 andcamera 735, a computer 99 may include other peripheral output devices(not shown), such as speakers and printers.

The computer 99 may operate in a networked environment using logicalconnections to one or more remote computers, such as the contentproducer 133. The content producer/advertiser 133 may be anotherpersonal computer, a server, a PCD 100 like a mobile phone, a router, anetwork PC, a peer device, or other common network node. While thecontent producer/advertiser remote computer 133 typically includes manyor all of the elements described above relative to the computer 99, onlya memory storage device 827B has been illustrated in FIG. 8.

The logical connections depicted in FIG. 8 include a local area network(LAN) 142A and a wide area network (WAN) 142B. Such networkingenvironments are commonplace in offices, enterprise-wide computernetworks, intranets, and the Internet.

When used in a LAN networking environment, the computer 99 is oftenconnected to the local area network 142A through a network interface oradapter 853. When used in a WAN networking environment 142B, thecomputer 99 typically includes a modem 854 or other means forestablishing communications over WAN 142B, such as the Internet. Modem854, which may be internal or external, is connected to system bus 823via serial port interface 846. In a networked environment, programmodules depicted relative to the content producer/advertiser 133, orportions thereof, may be stored in the remote memory storage device827B. It will be appreciated that the network connections shown areexemplary and other means of establishing a communications link 103between the computers 99 and PCDs 100 may be used.

Moreover, those skilled in the art will appreciate that the presentinvention may be implemented in other computer system configurations,including hand-held devices, multiprocessor systems, microprocessorbased or programmable consumer electronics, network personal computers,minicomputers, mainframe computers, and the like. The invention may alsobe practiced in distributed computing environments, where tasks areperformed by remote processing devices that are linked through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

Certain steps in the processes or process flows described in thisspecification naturally precede others for the invention to function asdescribed. However, the invention is not limited to the order of thesteps described if such order or sequence does not alter thefunctionality of the invention. That is, it is recognized that somesteps may performed before, after, or parallel (substantiallysimultaneously with) other steps without departing from the scope andspirit of the invention. In some instances, certain steps may be omittedor not performed without departing from the invention. Further, wordssuch as “thereafter”, “then”, “next”, “subsequently”, etc. are notintended to limit the order of the steps. These words are simply used toguide the reader through the description of the exemplary method.

Additionally, one of ordinary skill in programming is able to writecomputer code or identify appropriate hardware and/or circuits toimplement the disclosed invention without difficulty based on the flowcharts and associated description in this specification, for example.Therefore, disclosure of a particular set of program code instructionsor detailed hardware devices is not considered necessary for an adequateunderstanding of how to make and use the invention. The inventivefunctionality of the claimed computer implemented processes is explainedin more detail in the above description and in conjunction with thedrawings, which may illustrate various process flows.

In one or more exemplary aspects, the functions described may beimplemented in hardware, software, firmware, or any combination thereof.If implemented in software, the functions may be stored on ortransmitted as one or more instructions or code on a computer-readablemedium. Computer-readable media include both computer storage media andcommunication media including any medium that facilitates transfer of acomputer program from one place to another. A storage media may be anyavailable media that may be accessed by a computer. By way of example,and not limitation, such computer-readable media may comprise RAM, ROM,EEPROM, CD-ROM or other optical disk storage, magnetic disk storage orother magnetic storage devices, or any other medium that may be used tocarry or store desired program code in the form of instructions or datastructures and that may be accessed by a computer.

Also, any connection is properly termed a computer-readable medium. Forexample, if the software is transmitted from a website, server, or otherremote source using a coaxial cable, fiber optic cable, twisted pair,digital subscriber line (“DSL”), or wireless technologies such asinfrared, radio, and microwave, then the coaxial cable, fiber opticcable, twisted pair, DSL, or wireless technologies such as infrared,radio, and microwave are included in the definition of medium.

Disk and disc, as used herein, includes compact disc (“CD”), laser disc,optical disc, digital versatile disc (“DVD”), floppy disk and blu-raydisc where disks usually reproduce data magnetically, while discsreproduce data optically with lasers. Combinations of the above shouldalso be included within the scope of computer-readable media.

Therefore, although selected aspects have been illustrated and describedin detail, it will be understood that various substitutions andalterations may be made therein without departing from the spirit andscope of the present invention, as defined by the following claims.

What is claimed is:
 1. A method of selecting electronic advertisingcontent relevant to textual lyrics of a song and transmitting theadvertising content over a computer network to a remote subscriberportable computing device playing the song to a subscriber of a musicdata source, the method comprising: providing a song playing applicationto the subscriber for installation on the remote subscriber portablecomputing device wherein the application plays the song on the portablecomputing device upon the subscriber selecting the song via theapplication; receiving, by a transmission server comprising amicroprocessor and a non-transitory computer readable memory, songs sentfrom the music data source over the computer network, the memory storingremote subscriber's preferences including an information formatpreference of the subscriber, a destination address preference of thesubscriber, and a song transmission schedule preference of thesubscriber; creating, by the microprocessor, a song categorizationdatabase by using machine learning and natural language processing toanalyze lyrics of each song obtained from the music data source, toextract and identify keywords of each song, and to determine a lyricalsentiment from the lyrics of each song; applying, by the microprocessor,natural language processing to at least one server social media accountto automatically collect information about individual songs, albums, andartists associated with the server social media account; collecting, bythe microprocessor, data from one or more social media accountsmaintained by each listener of the song including from a social mediaaccount of the subscriber; each listener granting a listener knowledgedatabase access to at least one listener social media account; eachlistener social media account being protected by a user name andpassword, the social media account of the subscriber and each listenersocial media account receiving text from a respective listener, the textfrom the respective listener received by the social media account of thesubscriber including personal messages to other listeners and personalmessages from other listeners; updating, by the microprocessor and basedon analyzing the data collected from the one or more social mediaaccounts maintained by each listener, the listener knowledge databasewith social media information of each listener as the listener knowledgedatabase learns about each respective listener; receiving identificationinformation that identifies each song received by the transmissionserver from the data source; receiving, by the microprocessor of thetransmission server, song playing application identification informationof the song playing application associated with the subscriber,environmental information, and listener information of the subscriberfrom the Internet; the environmental information comprising geographiclocation information and accelerometer data from the subscriber portablecomputing device; determining if the subscriber portable computingdevice is present within a vehicle based upon the accelerometer datafrom the subscriber portable computing device; associating theenvironmental information with a vehicle status, the vehicle statuscomprising whether the subscriber portable computing device is presentwithin the vehicle or not; matching, by the microprocessor of thetransmission server, the song that is currently being played by thesubscriber on the subscriber portable computing device with informationin the song categorization database to identify the lyrical sentiment ofthe song being played, predetermined weights associated with the songbeing played and song categories associated with the song being played;matching, by the microprocessor, the subscriber with the social mediainformation in a listener knowledge database and identifying listenercategories associated with the social media information of thesubscriber; selecting, by the microprocessor, the electronic advertisingcontent from a content database by conducting a real-time biddingprocess and the microprocessor selecting the advertising content basedon the lyrical sentiment of the song being played, the predeterminedweights assigned to the song, the vehicle status, the song categoriesassociated with the song, advertising campaign information stored in acampaign database, and the selecting of the advertising content by themicroprocessor further including matching the song categories, theenvironmental information, and the listener categories with campaigns inthe campaign database, the real-time bidding process comprising themicroprocessor selecting the song categories in the song categorizationdatabase according to numerical weighting parameters assigned to eachcategory of the song categories in the song categorization database;generating, by the microprocessor, an electronic advertising alertcomprising the selected advertising content; formatting, by themicroprocessor, the electronic advertising alert into data blocksaccording to the information format preference of the remotesubscriber's preferences; transmitting, by the microprocessor, a messageincluding the formatted electronic advertising alert over a wirelesscommunication channel to the subscriber portable computing deviceaccording to the destination address preference and the transmissionschedule preference of the subscriber, wherein the formatted electronicadvertising alert activates the song playing application on the remotesubscriber portable computing device to display the message comprisingelectronic advertising with the selected advertising content while thesong is being played by the song playing application on the remotesubscriber portable computing device, the message further comprisinginteractive features that are selected via the song playing applicationto provide feedback about the selected advertising content from thesubscriber of the remote subscriber portable computing device while thesong is being played by the song playing application, the feedback beingtransmitted from the remote subscriber portable computing device to thetransmission server; and storing, by the microprocessor, the feedbackabout the selected advertising content in the listener knowledgedatabase.
 2. The method of claim 1, wherein the song playing applicationidentification information comprises at least one of a unique identifierassociated with the song playing application, hardware information forthe subscriber portable computing device, and software information forthe subscriber portable computing device.
 3. The method of claim 1,wherein the environmental information comprises geographical coordinatesfor the subscriber portable computing device.
 4. The method of claim 1,wherein the listener information comprises at least one of a streamingmusic profile associated with the subscriber of subscriber portablecomputing device, weather information associated with a geographicalposition of the subscriber portable computing device, and trafficinformation associated with the geographical position of the subscriberportable computing device.
 5. The method of claim 1, further comprisingcreating the song categorization database by analyzing acoustic featuresof the song in order to identify a mood for the song, acoustic sentimentfor the song, and other acoustic categories for the song.
 6. The methodof claim 1, further comprising generating content that comprises one ormore fields for receiving input from the listener of the song playingapplication running on the subscriber portable computing device.
 7. Themethod of claim 6, wherein the input comprises fields of a streamingmusic profile associated with the subscriber portable computing device.8. The method of claim 7, wherein the subscriber portable computingdevice comprises at least one of a mobile telephone, a personal digitalassistant, a pager, a smartphone, a navigation device, and a hand-heldcomputer with a wireless connection or link.
 9. The method of claim 1,wherein the subscriber portable computing device comprises at least oneof a mobile telephone, a personal digital assistant, a pager, asmartphone, a navigation device, and a hand-held computer with awireless connection or link.
 10. A method of selecting electronicadvertising content relevant to textual lyrics of a song andtransmitting the advertising content over a computer network to a remotesubscriber portable computing device playing the song to a subscriber ofa music data source, the method comprising: providing a song playingapplication to the subscriber for installation on the remote subscriberportable computing device wherein the application plays the song on theportable computing device upon the subscriber selecting the song via theapplication; receiving, by a transmission server comprising amicroprocessor and a non-transitory computer readable memory, songs sentfrom the music data source over the computer network, the memory storingremote subscriber's preferences including an information formatpreference of the subscriber, a destination address preference of thesubscriber, and a song transmission schedule preference of thesubscriber; creating, by the microprocessor, a song categorizationdatabase by using machine learning and natural language processing toanalyze lyrics of each song obtained from the music data source, toextract and identify keywords of each song, and to determine a lyricalsentiment from the lyrics of each song; applying, by the microprocessor,natural language processing to at least one server social media accountto automatically collect information about individual songs, albums, andartists associated with the server social media account; collecting, bythe microprocessor, data from one or more social media accountsmaintained by each listener of the song including from a social mediaaccount of the subscriber; each listener granting a listener knowledgedatabase access to at least one listener social media account; eachlistener social media account being protected by a user name andpassword, the social media account of the subscriber and each listenersocial media account receiving text from a respective listener, the textfrom the respective listener received by the social media account of thesubscriber including personal messages to other listeners and personalmessages from other listeners; updating, by the microprocessor and basedon analyzing the data collected from the one or more social mediaaccounts maintained by each listener, the listener knowledge databasewith social media information of each listener as the listener knowledgedatabase learns about each respective listener; receiving identificationinformation that identifies each song received by the transmissionserver from the data source; receiving, by the microprocessor of thetransmission server, song playing application identification informationof the song playing application associated with the subscriber,environmental information, and listener information of the subscriberfrom the Internet; the environmental information comprising geographiclocation information including geographical coordinates from thesubscriber portable computing device, and accelerometer data from thesubscriber portable computing device; determining if the subscriberportable computing device is present within a vehicle based upon atleast one of the accelerometer data and geographical coordinates fromthe subscriber portable computing device; associating the environmentalinformation with a vehicle status, the vehicle status comprising whetherthe subscriber portable computing device is present within the vehicleor not; matching, by the microprocessor of the transmission server, thesong that is currently being played by the subscriber on the subscriberportable computing device with information in the song categorizationdatabase to identify the lyrical sentiment of the song being played,predetermined weights associated with the song being played and songcategories associated with the song being played; matching, by themicroprocessor, the subscriber with the social media information in alistener knowledge database and identifying listener categoriesassociated with the social media information of the subscriber;selecting, by the microprocessor, the electronic advertising contentfrom a content database by conducting a real-time bidding process andthe microprocessor selecting the advertising content based on thelyrical sentiment of the song being played, the predetermined weightsassigned to the song, the vehicle status, the song categories associatedwith the song, advertising campaign information stored in a campaigndatabase, and the selecting of the advertising content by themicroprocessor further including matching the song categories, theenvironmental information, and the listener categories with campaigns inthe campaign database, the real-time bidding process comprising themicroprocessor selecting the song categories in the song categorizationdatabase according to numerical weighting parameters assigned to eachcategory of the song categories in the song categorization database;generating, by the microprocessor, an electronic advertising alertcomprising the selected advertising content; formatting, by themicroprocessor, the electronic advertising alert into data blocksaccording to the information format preference of the remotesubscriber's preferences; transmitting, by the microprocessor, a messageincluding the formatted electronic advertising alert over a wirelesscommunication channel to the subscriber portable computing deviceaccording to the destination address preference and the transmissionschedule preference of the subscriber, wherein the formatted electronicadvertising alert activates the song playing application on the remotesubscriber portable computing device to display the message comprisingelectronic advertising with the selected advertising content while thesong is being played by the song playing application on the remotesubscriber portable computing device, the message further comprisinginteractive features that are selected via the song playing applicationto provide feedback about the selected advertising content from thesubscriber of the remote subscriber portable computing device while thesong is being played by the song playing application, the feedback beingtransmitted from the remote subscriber portable computing device to thetransmission server; and storing, by the microprocessor, the feedbackabout the selected advertising content in the listener knowledgedatabase.
 11. The method of claim 10, wherein the song playingapplication identification information comprises at least one of aunique identifier associated with the song playing application, hardwareinformation for the subscriber portable computing device, and softwareinformation for the subscriber portable computing device.
 12. The methodof claim 10, wherein the listener information comprises at least one ofa streaming music profile associated with the subscriber of subscriberportable computing device, weather information associated with ageographical position of the subscriber portable computing device, andtraffic information associated with the geographical position of thesubscriber portable computing device.
 13. The method of claim 10,further comprising creating the song categorization database byanalyzing acoustic features of the song in order to identify a mood forthe song, acoustic sentiment for the song, and other acoustic categoriesfor the song.
 14. The method of claim 10, further comprising generatingcontent that comprises one or more fields for receiving input from thelistener of the song playing application running on the subscriberportable computing device.
 15. The method of claim 14, wherein the inputcomprises fields of a streaming music profile associated with thesubscriber portable computing device.
 16. The method of claim 15,wherein the subscriber portable computing device comprises at least oneof a mobile telephone, a personal digital assistant, a pager, asmartphone, a navigation device, and a hand-held computer with awireless connection or link.
 17. The method of claim 10, wherein thesubscriber portable computing device comprises at least one of a mobiletelephone, a personal digital assistant, a pager, a smartphone, anavigation device, and a hand-held computer with a wireless connectionor link.